package org.jeecg.modules.basic.unit.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.basic.materialtype.entity.BasicMaterialTreeVO;
import org.jeecg.modules.basic.unit.entity.BasicUnit;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @Description: 计量单位
 * @Author: jeecg-boot
 * @Date:   2023-07-26
 * @Version: V1.0
 */
public interface IBasicUnitService extends IService<BasicUnit> {

    /**
     * 查询单位分类
     * @return
     */
    List<BasicUnit> listParent(String name);

    /**
     * 查询计量单位
     * @return
     */
    Page<BasicUnit> pageChild(Page<BasicUnit> page, BasicUnit unit);

    /**
     * 通过id删除
     * @param id
     */
    void deleteUnitById(String id);

    /**
     * 查询树形结构所有数据
     * @return
     */
    List<BasicMaterialTreeVO> listTree();

    /**
     * 导入
     * @param request
     */
    Result<String> importExcel(HttpServletRequest request);

    /**
     * 查询所有子计量单位
     * @return
     */
    Page<BasicUnit> allChild(Page<BasicUnit> page, BasicUnit unit);

    void updateUsed(List<String> ids);

    void updateUsedAll();

    /**
     * 根据codes查询对应的ids
     * @param list
     * @return
     */
    Map<String,String> getIdByCodes(List<String> list);
}
